Skip to content

feat(claude): add Claude Fable 5.1 model - #247

Closed
rynfar wants to merge 2 commits into
pylonfrom
upstream/2026-09-02-claude-fable-5-1
Closed

feat(claude): add Claude Fable 5.1 model#247
rynfar wants to merge 2 commits into
pylonfrom
upstream/2026-09-02-claude-fable-5-1

Conversation

@rynfar

@rynfar rynfar commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Pylon's Claude catalog stops at Fable 5, so Claude Fable 5.1 cannot be selected
even on a Claude Code new enough to run it. Upstream added the model in
pingdotgg/t3code#9078; this
adopts that change and nothing else.

claude-fable-5-1 joins the Claude model catalog with the effort and
context-window descriptors, gated behind Claude Code v2.1.257 so older CLIs
hide the model rather than failing at spawn time. The version-upgrade message
chain now leads with Fable 5.1, xhigh effort is preserved for the model
instead of being widened to max, and fable / fable-5.1 /
claude-fable-5.1 resolve to the canonical slug.

Scope

Cherry-picked with -x from c17d02cff, clean, no conflicts, applied
line-for-line. It is self-contained and does not depend on
#9084 (remote Claude model
manifest discovery), the much larger ClaudeProvider.ts restructure that
follows it upstream. That work is deliberately out of scope here.

This is a scoped adoption, not a batch review: 128 other upstream commits in
9b2d0431..57a66608 remain unreviewed, so .agents/upstream-review.md records
the decision without advancing reviewed-through.

Worth a reviewer's attention

The bundled manifest swap puts claude-fable-5-1 into the current Claude set in
place of claude-fable-5, so Fable 5 now reports as legacy. That is
upstream's intent — 5.1 supersedes 5 in the same tier at the same per-token
price — but it is a visible status change to an existing model.

Verification

  • vp test run over the four touched test files: 4 files, 170 tests, all
    passed, none skipped.
  • vp run -F t3 -F @t3tools/contracts -F @t3tools/shared typecheck: exit 0,
    3/3 packages checked, no errors and no new diagnostics in the touched files.
  • Checked that nothing else in Pylon hardcodes Claude model slugs; usage pricing
    keys on the bare fable family, so it prices 5.1 with no change.
  • Not done: a real-client pass on the model picker. Happy to run one on request.

Written by Claude Opus 5 in Claude Code.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

q1 and others added 2 commits September 2, 2026 12:01
Adds `claude-fable-5-1` to the Claude model catalog with the effort and
context-window option descriptors, gated behind Claude Code v2.1.257 so
older CLIs do not advertise a model they cannot run. The version-upgrade
message chain now leads with Fable 5.1, `xhigh` effort is preserved for
the model rather than being widened to `max`, and `fable` / `fable-5.1` /
`claude-fable-5.1` resolve to the canonical slug.

In the bundled model manifest `claude-fable-5-1` replaces `claude-fable-5`
in the current Claude set, so Fable 5 is now reported as legacy.

Adopted from T3 Code upstream PR #9078,
commit c17d02cff98f2e7b590d4c3a5775d1faa47c2e7b.

(cherry picked from commit c17d02cff98f2e7b590d4c3a5775d1faa47c2e7b)
@rynfar
rynfar force-pushed the upstream/2026-09-02-claude-fable-5-1 branch from b2684a8 to fe0fe86 Compare September 2, 2026 18:02
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 13.6 KiB +10 B (+0.1%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB +10 B (+0.1%) 7.3 KiB
Codex Live turn WebSocket wire 6.6 KiB 6.6 KiB 0 B (0.0%) 7.8 KiB
Codex Live turn WebSocket decoded 57.2 KiB 57.2 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 10 10 0 (0.0%) 21
Claude Total thread wire 13.6 KiB 13.6 KiB −18 B (−0.1%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB +3 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.6 KiB 6.6 KiB −21 B (−0.3%) 7.8 KiB
Claude Live turn WebSocket decoded 58.1 KiB 58.1 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 10 10 0 (0.0%) 21

Baseline: a509639 · PR result: fe0fe86 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.5 KiB
  • Claude decoded thread snapshot: 110.2 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar

rynfar commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #246, which landed this same upstream commit (c17d02cff / upstream #9078) together with #9084.

Fable 5.1 is live on pylonmodel-manifest.json carries claude-fable-5-1 with the fable / fable-5.1 / claude-fable-5.1 aliases, minVersion: 2.1.257, and the fable-5 profile including xhigh effort. #9084 moved that from hardcoded TypeScript into manifest data, which is why this branch's version of the change no longer applies.

Not merging this: the branch predates 396 files of subsequent work, so merging it would revert roughly 51,000 lines.

The three by-name tests it added are intentionally not being re-added. Both ClaudeModelCatalog.test.ts and ModelManifest.test.ts carry an explicit policy against per-model tests, and every failure mode those tests covered is caught generically: semver validation and min-below-max on minVersion at schema decode, profile and slug reference checks in hasValidProviderCatalogReferences, and version-boundary filtering plus alias resolution in ClaudeModelCatalog.test.ts.

@rynfar rynfar closed this Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants